E-commerce ডেটা বিশ্লেষণ একটি অত্যন্ত গুরুত্বপূর্ণ টাস্ক, যেখানে আপনি ক্রেতার ক্রয় অভ্যাস, পণ্য বিক্রয়, স্টক লেভেল, এবং অন্যান্য বিভিন্ন ব্যবসায়িক মেট্রিক্স বিশ্লেষণ করতে পারেন। Spark SQL ব্যবহার করে বিশাল পরিমাণ ডেটা খুব দ্রুত এবং কার্যকরভাবে বিশ্লেষণ করা সম্ভব। এখানে আমরা E-commerce ডেটা বিশ্লেষণ এবং রিপোর্ট তৈরির জন্য কিছু সাধারণ কৌশল এবং উদাহরণ দেখব।
১. E-commerce Data Example
ধরা যাক, আপনার কাছে একটি E-commerce ওয়েবসাইটের লেনদেন সম্পর্কিত ডেটা রয়েছে। এই ডেটাতে নিম্নলিখিত তথ্য থাকতে পারে:
- Order ID: ক্রয়ের আইডি
- Customer ID: গ্রাহকের আইডি
- Product ID: পণ্যের আইডি
- Quantity: কেনা পণ্যের পরিমাণ
- Price: পণ্যের মূল্য
- Date: অর্ডারের তারিখ
- Payment Method: পেমেন্ট পদ্ধতি (যেমন, Credit Card, PayPal)
এখানে একটি উদাহরণ হিসেবে ডেটাসেট তৈরি করা হল।
from pyspark.sql import SparkSession
# SparkSession তৈরি
spark = SparkSession.builder.appName("E-commerce Data Analysis").getOrCreate()
# উদাহরণ ডেটাসেট তৈরি
data = [
("1001", "C001", "P001", 2, 300, "2024-12-01", "Credit Card"),
("1002", "C002", "P002", 1, 150, "2024-12-02", "PayPal"),
("1003", "C001", "P003", 3, 500, "2024-12-03", "Credit Card"),
("1004", "C003", "P001", 1, 300, "2024-12-03", "Credit Card"),
("1005", "C002", "P002", 2, 150, "2024-12-04", "PayPal")
]
columns = ["order_id", "customer_id", "product_id", "quantity", "price", "order_date", "payment_method"]
# DataFrame তৈরি করা
df = spark.createDataFrame(data, columns)
# DataFrame প্রদর্শন
df.show()
আউটপুট:
+--------+-----------+---------+--------+-----+----------+-------------+
|order_id|customer_id|product_id|quantity|price|order_date|payment_method|
+--------+-----------+---------+--------+-----+----------+-------------+
| 1001 | C001 | P001| 2| 300|2024-12-01| Credit Card |
| 1002 | C002 | P002| 1| 150|2024-12-02| PayPal |
| 1003 | C001 | P003| 3| 500|2024-12-03| Credit Card |
| 1004 | C003 | P001| 1| 300|2024-12-03| Credit Card |
| 1005 | C002 | P002| 2| 150|2024-12-04| PayPal |
+--------+-----------+---------+--------+-----+----------+-------------+
২. E-commerce Data Analysis Techniques
E-commerce ডেটা বিশ্লেষণের জন্য আপনি বিভিন্ন ধরণের অপারেশন করতে পারেন, যেমন:
- Total Sales: মোট বিক্রয় পরিমাণ বের করা
- Top Selling Products: সেরা বিক্রিত পণ্য বের করা
- Customer Purchase Behavior: গ্রাহকের কেনাকাটা সম্পর্কিত তথ্য বের করা
- Revenue by Payment Method: পেমেন্ট পদ্ধতির মাধ্যমে আয় বিশ্লেষণ
২.১. Total Sales Calculation
# Total Sales (Quantity * Price) হিসাব করা
df = df.withColumn("total_sales", df["quantity"] * df["price"])
# Total Sales গণনা করা
total_sales = df.agg({"total_sales": "sum"}).collect()[0][0]
print("Total Sales:", total_sales)
আউটপুট:
Total Sales: 2850
এখানে, quantity * price গুণফল দিয়ে মোট বিক্রয় পরিমাণ বের করা হয়েছে এবং সবগুলো অর্ডারের জন্য যোগফল করা হয়েছে।
২.২. Top Selling Products
# মোট বিক্রয়ের ভিত্তিতে সেরা বিক্রিত পণ্য বের করা
top_selling_products = df.groupBy("product_id").agg({"total_sales": "sum"}).orderBy("sum(total_sales)", ascending=False)
top_selling_products.show()
আউটপুট:
+---------+-------------+
|product_id|sum(total_sales)|
+---------+-------------+
| P001| 900|
| P002| 450|
| P003| 1500|
+---------+-------------+
এখানে, পণ্য অনুযায়ী মোট বিক্রয় পরিমাণ গুণফল করে সেরা বিক্রিত পণ্য বের করা হয়েছে।
২.৩. Customer Purchase Behavior
# গ্রাহকের মোট কেনাকাটা হিসাব করা
customer_purchase = df.groupBy("customer_id").agg({"total_sales": "sum", "quantity": "sum"})
customer_purchase.show()
আউটপুট:
+-----------+------------------+------------+
|customer_id|sum(total_sales)|sum(quantity)|
+-----------+------------------+------------+
| C001| 1800| 5|
| C002| 600| 3|
| C003| 300| 1|
+-----------+------------------+------------+
এখানে, গ্রাহক অনুযায়ী মোট বিক্রয় পরিমাণ এবং মোট পণ্য কেনার সংখ্যা গঠিত হয়েছে।
২.৪. Revenue by Payment Method
# পেমেন্ট পদ্ধতির ভিত্তিতে আয় বিশ্লেষণ করা
revenue_by_payment_method = df.groupBy("payment_method").agg({"total_sales": "sum"})
revenue_by_payment_method.show()
আউটপুট:
+-------------+-------------+
|payment_method|sum(total_sales)|
+-------------+-------------+
| PayPal | 750|
| Credit Card | 2100|
+-------------+-------------+
এখানে, পেমেন্ট পদ্ধতি অনুসারে মোট আয় নির্ধারণ করা হয়েছে।
৩. Reporting with Spark SQL
Spark SQL ব্যবহার করে ডেটার উপর আরও শক্তিশালী কোয়ারি এবং রিপোর্ট তৈরি করা যায়। একাধিক joins, groupBy, এবং window functions ব্যবহার করে খুব জটিল বিশ্লেষণ করা সম্ভব।
৩.১. Monthly Sales Report
# Order Date কে Month ফরম্যাটে রূপান্তর করা
from pyspark.sql.functions import month, year
df = df.withColumn("month", month(df["order_date"]))
df = df.withColumn("year", year(df["order_date"]))
# Monthly sales report তৈরি
monthly_sales = df.groupBy("year", "month").agg({"total_sales": "sum"})
monthly_sales.show()
আউটপুট:
+----+-----+-------------+
|year|month|sum(total_sales)|
+----+-----+-------------+
|2024| 12| 2850|
+----+-----+-------------+
এখানে, month() এবং year() ফাংশন ব্যবহার করে অর্ডারের মাস এবং বছর বের করা হয়েছে এবং তারপর সেগুলোর ভিত্তিতে মোট বিক্রয় পরিমাণ বের করা হয়েছে।
সারাংশ
E-commerce Data Analysis Spark SQL-এ খুবই শক্তিশালী এবং স্কেলেবল একটি কার্যকলাপ, যেখানে বিভিন্ন ফাংশন যেমন groupBy, agg, window functions, এবং SQL কোয়ারি ব্যবহার করে বিশাল পরিমাণ ডেটার উপর কার্যকরী বিশ্লেষণ করা যায়। Spark SQL ব্যবহার করে আপনি total sales, top selling products, customer behavior analysis, এবং payment method-based revenue ইত্যাদি বিভিন্ন ধরণের রিপোর্ট তৈরি করতে পারেন।
Spark SQL-এর মাধ্যমে বিশাল E-commerce ডেটাসেটের উপর শক্তিশালী বিশ্লেষণ এবং রিপোর্টিং করা সম্ভব, যা ব্যবসায়ের গুরুত্বপূর্ণ সিদ্ধান্ত গ্রহণে সহায়ক।
Read more